#ifndef ZINGYENGINE_H
#define ZINGYENGINE_H

#include <string>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include "World.h"
#include "WorldManager.h"
#include "Camera.h"

namespace me
{

    class MagnusEngine
    {
        public:
            MagnusEngine(sf::VideoMode vMode, std::string windowTitle, sf::Uint32 style = sf::Style::Default);
            virtual ~MagnusEngine();

            bool isActive(){ return active; }

            void update();
            void close();



            virtual void onClose();

            virtual void onPreRender();
            virtual void onRender();
            virtual void onPostRender();
            virtual void onKey(sf::Uint32 key, bool pressed, bool alt, bool control, bool shift, bool system);
            virtual void onMouseClick(sf::Uint32 button, bool pressed, int x, int y);


        protected:
            sf::RenderWindow m_window;
            me::WorldManager m_worldManager;
            me::Camera m_camera;
            bool active;
        private:
    };

}





#endif // ZINGYENGINE_H
